Some applications traditionally have been run exclusively by system administrators. In some cases, this is because the application requires access to information beyond the privileges of any individual user. For example, a backup application may require access to all user data, essentially requiring system administrator access privileges, in order to provide a comprehensive service. In other cases, this is because the application can only perform one operation at a time so that the system administrator must decide which operation has priority. For example, a backup application may allow only one instance to be running and accessing its catalog so that the backup application cannot restore a file at the same time as a backup or transfer is in operation. However, if the system administrator is the only one able to run certain applications, the system administrator becomes a bottleneck. And also, if there is only one operation allowed at a time, then the application itself is a bottleneck. It would be useful to enable users as well as administrators to run all, or certain modes, of the applications themselves while still preserving access limitations as well as be able to run these modes concurrently. In particular, in the context of backup applications it would be useful to enable an individual user (or administrator) to access and use a backup application and associated backup data to restore the user's own files and/or other data, and when possible, to permit a user to perform such an operation at the same time one or more other non-conflicting operations are being performed with respect to the same backup data set, e.g., by an administrator or another user.
In current practice, backup systems such as VERITAS NetBackup™ or CONNECTED Online Backup offer an ability for multiple users to simultaneously access backup data sets. However, retrieval is limited to the following forms: 1) the user can provide search criteria and retrieve the matching files, for example all .DOC files backed up in a date range from a certain computer; 2) the user can select a specific file and retrieve one or more prior versions by date; or 3) the user can select a specific directory and retrieve the most recent versions of the files contained therein. But what is needed is an ability to obtain an index of the state of a given backed-up disk volume at the previous points in time where a backup has been performed, and then select files for retrieval from that index at a specific point in time. For example, when working on a project involving several documents of different types, it might be desirable to obtain a copy of the documents that were current as of a given date in the past, as might have been delivered together to a customer. As of the target date, some files might have been modified a day before, and some a week before. Then later any of the files might be modified at different times. Some files that were previously part of the project might have been moved, renamed, or deleted as of the target date. A common solution is to retrieve too many files, and then manually delete the newer revisions and any deleted files as of the target date. This is a laborious and error-prone process. It would be better if the files could be obtained conveniently in one step and also simultaneously by more than one user.